package com.example.pattern.facade;

/**
 * 门面 模式
 * 需要使用复杂的子系统的有限但直接调接口是，使用 facade模式
 * 当需要把子系统组成层次是使用
 */
public class FacadeTest {

    public static void main(String[] args) {
        //直接调用 facade servcie就可以调了其他服务
        FacadeService.doActions();
    }

}

/**
 * 统一调用 每个 service
 */
class FacadeService{

    public static void doActions(){
        System.out.println("现在开始第一个服务：");
        Service1.action();
        System.out.println("现在开始第二个服务：");
        Service2.action();
        System.out.println("现在开始第三个服务：");
        Service2.action();
    }

}



class Service1{

    public static void action(){
        System.out.println("Service1 action ...");
    }

}

class Service2{

    public static void action(){
        System.out.println("Service2 action ...");
    }

}

class Service3{

    public static void action(){
        System.out.println("Service3 action ...");
    }

}
